<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>

    <link rel="stylesheet" type="text/css" 
      href="/assets/css/straybirds.css" media="screen" />
    <link rel="stylesheet" type="text/css" 
      href="/assets/css/pygments.css" media="screen" />

    <!-- MathJax Section Start -->

    <script type="text/javascript"
    src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>
    <script>
        MathJax.Hub.Config({
              tex2jax: {
              skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
              }
        });
        MathJax.Hub.Queue(function() {
            var all = MathJax.Hub.getAllJax(), i;
            for(i=0; i < all.length; i += 1) {
                all[i].SourceElement().parentNode.className += ' has-jax';
            }
        });
    </script>

    <!-- MathJax Section End -->

    <!-- Google Analytics Start-->
    <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-48100787-1', 'minixalpha.github.io');
  ga('send', 'pageview');

</script>

    <!-- Google Analytics End -->

    <title>首页</title>
  </head>

  <body>
    <div class="container">
      <header>
        <div class="container">
          <h1>
              <a href="/" title="Home Page"> 潇湘夜雨 </a>
          <span class="github-src">
            <a href ="https://github.com/minixalpha/minixalpha.github.io"
               target="_blank"
               title="Fork me on GitHub">
              <img src="/assets/images/GitHub-Mark-Light-32px.png" alt="">
            </a>
          </span>
          </h1>
        </div>
      </header>

      <aside id="left-side">
        <h2> 分类 </h2>
  <ul class="category-list">
      
            
                <li>
                <a href="/categories/计算机系统"> 计算机系统 (3) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/java"> java (1) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/技术"> 技术 (5) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/工具"> 工具 (4) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/科研"> 科研 (5) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/生活"> 生活 (1) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/思想"> 思想 (2) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/c语言"> c语言 (4) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/虚拟机"> 虚拟机 (1) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/英语"> 英语 (8) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/读书"> 读书 (1) </a>
                </li>
            
      
            
                <li>
                <a href="/categories/源代码阅读"> 源代码阅读 (10) </a>
                </li>
            
      
  </ul>

      </aside>

      <aside id="right-side">
        <h2> 归档 </h2>
  <ul class="archive-list">
    
    
    
        
        
        
        
            
            <li>
                <a href="/2014/05">
                    2014-05 (1)
                </a>
            </li>

        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
            
            <li>
                <a href="/2014/04">
                    2014-04 (3)
                </a>
            </li>

        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
            
            <li>
                <a href="/2014/03">
                    2014-03 (11)
                </a>
            </li>

        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
            
            <li>
                <a href="/2014/02">
                    2014-02 (6)
                </a>
            </li>

        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
            
            <li>
                <a href="/2014/01">
                    2014-01 (3)
                </a>
            </li>

        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
            
            <li>
                <a href="/2013/11">
                    2013-11 (10)
                </a>
            </li>

        
        
    
        
        
        
        
    
        
        
        
        
    
        
        
        
        
            
            <li>
                <a href="/2013/10">
                    2013-10 (3)
                </a>
            </li>

        
        
    
  </ul>

      </aside>

      <article>

<ul class="post-list">
    
    <li>
      <div class="post-title">
        <a href="/%E8%8B%B1%E8%AF%AD/2014/03/09/learn-english-3.html"> 学习英语第三周</a> </br>
      </div>

      <div class="post-info">
        <ol>
          <li class="post-time">2014-03-09</li> 
          <li class="post-category"> 
           英语
          </li>
        </ol>
      </div>

      <div class="post-preview">
        <h1>学习英语第三周</h1>

<h2>阅读英文原著</h2>

<p>这周按照预定计划，把每天的阅读量降低了一半，每天20页左右。下面是时间表。</p>

<table><thead>
<tr>
<th align="center">Book</th>
<th align="center">Time</th>
<th align="center">Total Time</th>
<th align="center">Progress</th>
</tr>
</thead><tbody>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.03  16:00-17:30 18:30-19:00</td>
<td align="center">2h</td>
<td align="center">487/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.04  13:00-14:00 18:40-19:40</td>
<td align="center">2h</td>
<td align="center">510/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.05  12:30-13:10 19:00-20:00</td>
<td align="center">1.6h</td>
<td align="center">530/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.06  13:00-13:40 18:50-20:10</td>
<td align="center">2h</td>
<td align="center">564/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.07  13:00-13:45  19:00-20:00 21:00-23:15</td>
<td align="center">4h</td>
<td align="center">625/625</td>
</tr>
<tr>
<td align="center">Harry Potter and the Philosopher&#39;s Stone</td>
<td align="center">2014.03.08 16:30-18:00</td>
<td align="center">1.5h</td>
<td align="center">30/309</td>
</tr>
<tr>
<td align="center">Harry Potter and the Philosopher&#39;s Stone</td>
<td align="center">2014.03.09 12:30-14:30</td>
<td align="center">2h</td>
<td align="center">60/309</td>
</tr>
</tbody></table>

<p>这周把 <em>The Three Musketeers</em> 阅读完了，第一本英文小说，从一开始看40页需要六个小时，到最后基本可以流畅地看下来，感觉还是不错的。</p>

<p>下面是关键数据：</p>

<ul>
<li>20天（2月16日至3月7日）</li>
<li>625页</li>
<li>228402单词</li>
<li>320个新单词</li>
</ul>
 
        <a href="/%E8%8B%B1%E8%AF%AD/2014/03/09/learn-english-3.html"> Read More ... </a> </br>
      </div>

    </li>
    
    <li>
      <div class="post-title">
        <a href="/%E7%A7%91%E7%A0%94/2014/03/07/history-of-data-race-free.html"> Data Race Free 的前世今生</a> </br>
      </div>

      <div class="post-info">
        <ol>
          <li class="post-time">2014-03-07</li> 
          <li class="post-category"> 
           科研
          </li>
        </ol>
      </div>

      <div class="post-preview">
        <h1>Data Race Free 的前世今生</h1>

<p>Data Race Free 是多线程程序是非常重要的概念，因为Java 和 C++的内存模型都是基于 Data Race Free 的，这篇文章将介绍这个概念的由来，另一篇文章《Data Race Free的理解》介绍它的主要思想。</p>

<p>事情要追溯到遥远的1979年， Lamport 在他的著名论文  <em>How to make a multiprocessor computer that correctly executes multiprocess programs</em> 中提出了今后在内存模型领域被广泛使用的概念 ：<em>sequential consistency</em>，即顺序一致性。这篇文章告诉我们，你要做一台多处理器的计算机，需要满足什么条件，才能保证程序的正确性。当然，这里的程序跑在不同处理器上，共享同一块内存。虽然现在不说多处理器了，都说多核，多线程，但是问题的本质是没有变的。就是多个执行单元一起完成一个任务，并且通过共享存储单元的方式通信，在这种情况下，底层的系统需要提供什么样的支持，才能保证计算的结果和程序员的预期是一样的。</p>
 
        <a href="/%E7%A7%91%E7%A0%94/2014/03/07/history-of-data-race-free.html"> Read More ... </a> </br>
      </div>

    </li>
    
    <li>
      <div class="post-title">
        <a href="/%E7%A7%91%E7%A0%94/2014/03/06/think-of-data-race-free.html"> 对Data Race Free 的理解</a> </br>
      </div>

      <div class="post-info">
        <ol>
          <li class="post-time">2014-03-06</li> 
          <li class="post-category"> 
           科研
          </li>
        </ol>
      </div>

      <div class="post-preview">
        <h1>对Data Race Free 的理解</h1>

<h2>Data Race Free 的动机</h2>

<p>Data Race Free 是对多线程程序 <strong>同步程度</strong> 的一种描述，假如你的多线程程序的同步程度满足 DRF 的要求，那么，你的程序会有这样一个好处：</p>
<div class="highlight"><pre><code class="text language-text" data-lang="text">程序在弱一致性模型下执行，执行的结果与在SC模型下执行一样
</code></pre></div>
<p>这意味着，程序员在写程序时，可以按SC模型来推断程序的执行。而程序在底层运行时，可以享受弱一致性模型带来的种种优化措施。</p>

<h2>Data Race Free 具体内容</h2>

<p>DRF 要求多线程程序中不能有冲突的操作。</p>

<p>什么是冲突的操作呢？</p>

<p>冲突的操作是指：两个操作来自不同线程，操作同一地址，至少有一个是写操作。</p>

<p>如何让冲突的操作不冲突呢？</p>

<p>需要使用同步操作将冲突的操作隔离开。</p>

<p>为什么要用同步操作将冲突的操作隔离开呢?</p>
 
        <a href="/%E7%A7%91%E7%A0%94/2014/03/06/think-of-data-race-free.html"> Read More ... </a> </br>
      </div>

    </li>
    
    <li>
      <div class="post-title">
        <a href="/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F/c%E8%AF%AD%E8%A8%80/2014/03/06/think-int-in-c.html"> C语言中的int类型的范围是由什么决定的</a> </br>
      </div>

      <div class="post-info">
        <ol>
          <li class="post-time">2014-03-06</li> 
          <li class="post-category"> 
           计算机系统&nbsp&nbspc语言
          </li>
        </ol>
      </div>

      <div class="post-preview">
        <h1>C语言中的int类型的范围是由什么决定的</h1>

<p>在 K&amp;R 经典教材 <em>The C Programming Language</em> 的2.2节中，对 int 类型是这样描述的</p>

<blockquote>
<p>an integer, typically reflecting the natural size of integers on the host machine</p>
</blockquote>

<p>意思是反映了机器整数类型的 <em>natural size</em>，可是，</p>

<blockquote>
<p>这个 natural size 又是什么意思呢？</p>
</blockquote>

<p>书中后来在谈到 short, int, long 的关系时，又说，这些类型由编译器根据机器自由选择合适的大小，但是 short 和 int 至少 16 位，long 至少 32 位。</p>

<p>这里的问题是  </p>

<blockquote>
<p>编译器是根据什么决定类型大小呢？</p>
</blockquote>

<p>后面书中又提到，这些类型啊，在<code>&lt;limits.h&gt;</code>中都有，我就在ubuntu下查看了 <code>/usr/include/limits.h</code>，里面确实提到 </p>
<div class="highlight"><pre><code class="c language-c" data-lang="c"><span class="cm">/* Minimum and maximum values a `signed int&#39; can hold.  */</span>
<span class="cp">#  define INT_MIN   (-INT_MAX - 1)</span>
<span class="cp">#  define INT_MAX   2147483647</span>
</code></pre></div>
<p>但是，这也是一种定义，还是没有说出为什么，我现在想知道的是</p>

<blockquote>
<p>为什么</p>
</blockquote>
 
        <a href="/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F/c%E8%AF%AD%E8%A8%80/2014/03/06/think-int-in-c.html"> Read More ... </a> </br>
      </div>

    </li>
    
    <li>
      <div class="post-title">
        <a href="/%E8%8B%B1%E8%AF%AD/2014/03/02/learn-english-2.html"> 学习英语第二周</a> </br>
      </div>

      <div class="post-info">
        <ol>
          <li class="post-time">2014-03-02</li> 
          <li class="post-category"> 
           英语
          </li>
        </ol>
      </div>

      <div class="post-preview">
        <h1>学习英语第二周</h1>

<h2>阅读英文原著</h2>

<p>这周按照预定计划，把每天的阅读量降低了一半，每天20页左右。下面是时间表。</p>

<table><thead>
<tr>
<th align="center">Book</th>
<th align="center">Time</th>
<th align="center">Total Time</th>
<th align="center">Progress</th>
</tr>
</thead><tbody>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.02.23  20:20 - 22:20</td>
<td align="center">2h</td>
<td align="center">308/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.02.24  19:00 - 21:00</td>
<td align="center">2h</td>
<td align="center">330/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.02.25  18:40 - 20:10</td>
<td align="center">1.5h</td>
<td align="center">355/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.02.26 18:40 - 20:10</td>
<td align="center">1.5h</td>
<td align="center">375/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.02.27 13:00-14:00 18:40 - 19:40</td>
<td align="center">2h</td>
<td align="center">399/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.02.28 13:00-13:45 19:00-19:30 19:50-20:15</td>
<td align="center">1.6h</td>
<td align="center">425/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.01 14:00-16:00</td>
<td align="center">2h</td>
<td align="center">444/625</td>
</tr>
<tr>
<td align="center">The Three Musketeers</td>
<td align="center">2014.03.02 13:00-15:00</td>
<td align="center">2h</td>
<td align="center">465/625</td>
</tr>
</tbody></table>

<p>这周阅读起来没什么压力了，下周还按这个节奏，努力一下没准就能读完了。</p>

<h2>学习音标</h2>

<p>这周的任务是学习辅音，到这周结束，已经完成了任务。下面是时间表。</p>
 
        <a href="/%E8%8B%B1%E8%AF%AD/2014/03/02/learn-english-2.html"> Read More ... </a> </br>
      </div>

    </li>
    
</ul>

<!-- Pagination links -->

<div class="pagination">
  
    <a href="/page2">&laquo; Prev</a>
  

  
    
      <a href="/index.html">1</a>
    
  
    
      <a href="/page2">2</a>
    
  
    
      3
    
  
    
      <a href="/page4">4</a>
    
  
    
      <a href="/page5">5</a>
    
  
    
      <a href="/page6">6</a>
    
  
    
      <a href="/page7">7</a>
    
  
    
      <a href="/page8">8</a>
    
  

  
    <a href="/page4">Next &raquo;</a>
  
</div>



      </article>

      <div class="comments">
        
      </div>


      <footer>
        Copyright (c) minixalpha 2014
      </footer>

    </div>
  </body>
</html>
